﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DDD {
    /// <summary>
    /// エンジン全体に関する設定を行います
    /// </summary>
    public static class GlobalSettings {


        /// <summary>
        /// スタティック･コンストラクター
        /// </summary>
        static GlobalSettings () {
            Tolerance = 0.00001f;
            MaxTextureCount = 4;
        }

        /// <summary>
        /// 最大許容誤差
        /// </summary>
        /// <remarks>
        /// 以下の構造体で各要素の差が全てこの最大許容誤差以下の時”等しい”と見なされます。
        /// 初期値は0.00001です。
        /// <see cref="Vector2{T}"/>,<see cref="Vector3{T}"/>,<see cref="Vector4{T}"/>,
        /// <see cref="Quaternion"/>, <see cref="Matrix3x3"/>,<see cref="Matrix4x4"/>,
        /// 最大許容誤差は<code>GetHashCode()</code>では使用されず厳密に値を計算します。
        /// 従ってA==Bと判定される2つのオブジェクトのハッシュ値が異なることがあります。
        /// </remarks>
        public static float Tolerance { get; set; }

        /// <summary>
        /// シェーダーあたりの最大テクスチャー枚数
        /// </summary>
        /// <remarks>
        /// 1シェーダーあたり使用できる最大のテクスチャー枚数です。
        /// この定数はGPUに依存します。現在の所ハードウェアに関係なく4を返します。
        /// </remarks>
        public static int MaxTextureCount { get; set; }
    }
}
